package flc.ast.utils;

import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;

public class WifiSignalMonitor {
    private WifiManager mWifiManager;

    public WifiSignalMonitor(Context context) {
        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    }

    /**
     * 获取当前 Wi-Fi 的信号强度（RSSI）
     *
     * @return RSSI 值（单位：dBm）
     */
    public int getWifiSignalStrength() {
        if (mWifiManager == null) return -100; // 默认值，表示无信号

        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
        if (wifiInfo == null) return -100;

        return wifiInfo.getRssi(); // 返回 RSSI 值（单位：dBm）
    }

    /**
     * 将 RSSI 转换为信号强度等级（0-4）
     *
     * @param rssi RSSI 值
     * @return 信号强度等级（0：弱，2：强）
     */
    public int getSignalLevel(int rssi) {
        return WifiManager.calculateSignalLevel(rssi, 3); // 3 表示等级范围（0-2）
    }
}